home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / QuickDraw 3D / RAVE SDK 1.5 MacOS / RaveDemo / ShieldRect.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-14  |  1.2 KB  |  53 lines  |  [TEXT/CWIE]

  1. #define FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE 1
  2. #include <QuickDrawPriv.h>
  3. #include "ShieldRect.h"
  4.  
  5.  
  6. typedef struct ShieldRectParamBlock{
  7.     ProcPtr                procPtr;        /* pointer to routine to call if shield touches */
  8.     long                refCon;            /* constant to pass to UPP routine */
  9.     Rect                newRect;        /* New rect */
  10.     Rect *                 shieldRect;        /* pointer to private shield rect, returned by register */
  11.     void                *shieldStructPtr; /* pointer to shield parameter block, returned by register */
  12. } ShieldRectParamBlock, *ShieldRectParamBlockPtr;
  13.  
  14.  
  15. enum{
  16.     kGetBlitProcVers,
  17.     kGetBlitProcPtr,
  18.     kSetBlitProcPtr,
  19.     kRegisterShieldRectangle,
  20.     kUnRegisterShieldRectangle,
  21.     kSetShieldRectangle
  22. };
  23.  
  24.     
  25. void RegisterShieldRect(Rect * rectToShield, ShieldRectNotifyProcPtr proc, long refCon, long * cookie)
  26. {
  27.     ShieldRectParamBlock pb;
  28.     
  29.     /*******/
  30.     
  31.     pb.procPtr = (ProcPtr)NewQDUserNotifyProc(proc);
  32.     pb.refCon = refCon;
  33.     pb.newRect = *rectToShield;
  34.     
  35.     NQDMisc (kRegisterShieldRectangle, (long*)&pb);
  36.     /* Does NQDMisc return an error?  If so, where is it documented? */
  37.     
  38.     *cookie = (long)pb.shieldStructPtr;
  39. }
  40.  
  41.  
  42. void UnregisterShieldRect(long cookie)
  43. {
  44.     ShieldRectParamBlock pb;
  45.  
  46.     /*****/
  47.  
  48.     pb.shieldStructPtr = (void *)cookie;
  49.     NQDMisc(kUnRegisterShieldRectangle, (long*)&pb);
  50. }
  51.  
  52.  
  53.